package com.leetcode;

/**
 * 环形链表
 * 给你一个链表的头节点 head ，判断链表中是否有环。
 *
 * @author winson
 * @create 2022-04-08 12:20
 */
public class CycleLinkSolution {

    /**
     * 如何判断是否有环，通过快慢指针
     * @param head
     * @return
     */
    public boolean hasCycle(ListNode head) {
        /**
         * 链表没有元素或只有一个元素时没有环
         */
        if (head == null || head.next == null) {
            return false;
        }
        ListNode fast = head.next;
        ListNode slow = head;
        while (fast != null && fast.next != null) {
            if (fast == slow) {
                return true;
            }
            fast = fast.next.next;
            slow = slow.next;
        }
        return false;
    }
}
